In an effort to improve the ease of use of complex electronic devices, including computers, increasing use has been made in recent years of software readable registers that supply information identifying specific hardware components. This identifying information tends to include hardware revision information such as manufacturing revision and design level, usually identified with binary values of some form, including numbers serving as identification codes.
Also in an effort to improve ease of use, operating systems and other software that control the operation of such complex electronic devices, in recent years, have made increasing use of reading registers that provide such hardware revision information (e.g., binary values) to ensure that revisions of software needed to support the revisions of hardware that are present have been installed. This is often done to check that necessary revisions of device drivers needed by an operating system to communicate with and properly utilize the features of a specific hardware device are present. If such operating systems discover that a revision of software, such as a device driver, is needed, but not present so that it may be used, then such operating systems are often designed to present the user with a message asking for the necessary software.
Such measures to improve ease of use have had beneficial effects. Without such measures, users (or technicians providing support to users) have had to take steps, themselves, to ensure that the software needed to support specific hardware components in any given electronic device is provided. This often requires the user or technician to be knowledgeable about the hardware components and accompanying software to a considerable level of detail. However, such measures to improve ease of use have resulted in many users being freed from needing to have knowledge to such a level of detail, and in many cases, have also freed many users from needing to rely so heavily on support being provided by others.
However, such measures to improve ease of use have also added a new complexity to the use of such hardware components and software that did not previously exist. Over time, as hardware ages or is used, various hardware components tend to wear out and require replacement. It is often possible for an old hardware component to be replaced by a new hardware component that is substantially similar in many ways in design and functionality such that the replacement of an old hardware component by a new hardware component should not require a user or a technician to provide any software that was not already present. However, manufacturers don't usually continue to manufacture the very same hardware components, over time, without making modifications. Manufacturers of hardware tend to make improvements or changes to the design of hardware over time, even if such changes do nothing more than reduce manufacturing costs, reduce power consumption, reduce physical size, or any of a number of other possible changes that should not require the installation of new software to make use of the new hardware. Unfortunately, as manufacturers make such improvements, it is often desirable to reflect the fact that such improvements have been made by altering one or more values contained within the registers read by software to reflect the fact that the hardware represents a new hardware revision.
While it is desirable for software readable registers to reflect the fact that a specific hardware component represents a hardware revision that is newer than a hardware component that is being replaced, this often results in the software reading such registers, encountering the indication of a change in revision, and then asking a user or technician to install a newer revision of software to support the new revision of hardware, regardless of whether or not new software is actually needed for the new hardware component to work correctly. In other words, after a new hardware component has been installed by a user to replace an older hardware component that has been found to be malfunctioning, the user is then confronted with a message provided by the operating system indicating that new software must be installed, even if the new hardware component is identical in function to the hardware component that it replaces.
This has proven to be inconvenient for users, and in the case of corporations or other large organizations with personnel dedicated to supporting many users within that organization, this has also proven to be quite costly in terms of time and/or other resources being expended to satisfy the needs of users confronted with requests for the provision of unnecessary software.